//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.restaurant.application.couponmanage.support;

import com.google.common.collect.Lists;
import com.nebutown.generation.Convert;
import com.nebutown.generation.PickableBean;
import java.util.List;
import java.util.stream.Collectors;

public class CouponManageData implements PickableBean {
    public static final String FN_ID = "id";
    public static final String FN_NUMBER = "number";
    public static final String FN_CREATETIME = "createTime";
    public static final String FN_MODIFYTIME = "modifyTime";
    public static final String FN_RECEIVETIME = "receiveTime";
    public static final String FN_ENDTIME = "endTime";
    public static final String FN_TYPE = "type";
    public static final String FN_MODALITY = "modality";
    public static final String FN_FULLMONEY = "fullMoney";
    public static final String FN_MINUSMONEY = "minusMoney";
    public static final String FN_SHOPLIST = "shopList";
    public static final String FN_SHOPNAMELIST = "shopNameList";
    public static final String FN_REMARKS = "remarks";
    public static final String FN_TOTALAMOUNT = "totalAmount";
    public static final String FN_AMOUNT = "amount";
    public static final String FN_STATE = "state";
    public static final String FN_LIMITID = "limitId";
    public static final String FN_LIMITACCOUNT = "limitAccount";
    public static final List<String> FIELD_NAMES = Lists.newArrayList(new String[]{"id", "number", "createTime", "modifyTime", "receiveTime", "endTime", "type", "modality", "fullMoney", "minusMoney", "shopList", "shopNameList", "remarks", "totalAmount", "amount", "state", "limitId", "limitAccount"});
    private String id;
    private String number;
    private Long createTime;
    private Long modifyTime;
    private Long receiveTime;
    private Long endTime;
    private String type;
    private String modality;
    private Double fullMoney;
    private Double minusMoney;
    private List<CouponManageAndShopListData> shopList;
    private List<String> shopNameList;
    private String remarks;
    private Long totalAmount;
    private Long amount;
    private String state;
    private Long limitId;
    private Long limitAccount;

    public CouponManageData(String id, String number, Long createTime, Long modifyTime, Long receiveTime, Long endTime, String type, String modality, Double fullMoney, Double minusMoney, List<CouponManageAndShopListData> shopList, List<String> shopNameList, String remarks, Long totalAmount, Long amount, String state, Long limitId, Long limitAccount) {
        this.setId(id);
        this.setNumber(number);
        this.setCreateTime(createTime);
        this.setModifyTime(modifyTime);
        this.setReceiveTime(receiveTime);
        this.setEndTime(endTime);
        this.setType(type);
        this.setModality(modality);
        this.setFullMoney(fullMoney);
        this.setMinusMoney(minusMoney);
        this.setShopList(shopList);
        this.setShopNameList(shopNameList);
        this.setRemarks(remarks);
        this.setTotalAmount(totalAmount);
        this.setAmount(amount);
        this.setState(state);
        this.setLimitId(limitId);
        this.setLimitAccount(limitAccount);
    }

    public CouponManageData() {
    }

    public CouponManageData duplicate() {
        CouponManageData result = new CouponManageData();
        result.id = this.id;
        result.number = this.number;
        result.createTime = this.createTime;
        result.modifyTime = this.modifyTime;
        result.receiveTime = this.receiveTime;
        result.endTime = this.endTime;
        result.type = this.type;
        result.modality = this.modality;
        result.fullMoney = this.fullMoney;
        result.minusMoney = this.minusMoney;
        result.shopList = this.shopList == null ? null : (List)this.shopList.stream().map((e1) -> {
            return e1 == null ? null : e1.duplicate();
        }).collect(Collectors.toList());
        result.shopNameList = this.shopNameList == null ? null : (List)this.shopNameList.stream().map((e2) -> {
            return e2;
        }).collect(Collectors.toList());
        result.remarks = this.remarks;
        result.totalAmount = this.totalAmount;
        result.amount = this.amount;
        result.state = this.state;
        result.limitId = this.limitId;
        result.limitAccount = this.limitAccount;
        return result;
    }

    public String toString() {
        return Convert.toJson(this);
    }

    public String getId() {
        return this.id;
    }

    public void setId(String value) {
        this.id = value;
    }

    public CouponManageData withId(String value) {
        this.setId(value);
        return this;
    }

    public CouponManageData withId(String value, String defaultValue) {
        this.setId(value == null ? defaultValue : value);
        return this;
    }

    public String getNumber() {
        return this.number;
    }

    public void setNumber(String value) {
        this.number = value;
    }

    public CouponManageData withNumber(String value) {
        this.setNumber(value);
        return this;
    }

    public CouponManageData withNumber(String value, String defaultValue) {
        this.setNumber(value == null ? defaultValue : value);
        return this;
    }

    public Long getCreateTime() {
        return this.createTime;
    }

    public void setCreateTime(Long value) {
        this.createTime = value;
    }

    public CouponManageData withCreateTime(Long value) {
        this.setCreateTime(value);
        return this;
    }

    public CouponManageData withCreateTime(Long value, Long defaultValue) {
        this.setCreateTime(value == null ? defaultValue : value);
        return this;
    }

    public Long getModifyTime() {
        return this.modifyTime;
    }

    public void setModifyTime(Long value) {
        this.modifyTime = value;
    }

    public CouponManageData withModifyTime(Long value) {
        this.setModifyTime(value);
        return this;
    }

    public CouponManageData withModifyTime(Long value, Long defaultValue) {
        this.setModifyTime(value == null ? defaultValue : value);
        return this;
    }

    public Long getReceiveTime() {
        return this.receiveTime;
    }

    public void setReceiveTime(Long value) {
        this.receiveTime = value;
    }

    public CouponManageData withReceiveTime(Long value) {
        this.setReceiveTime(value);
        return this;
    }

    public CouponManageData withReceiveTime(Long value, Long defaultValue) {
        this.setReceiveTime(value == null ? defaultValue : value);
        return this;
    }

    public Long getEndTime() {
        return this.endTime;
    }

    public void setEndTime(Long value) {
        this.endTime = value;
    }

    public CouponManageData withEndTime(Long value) {
        this.setEndTime(value);
        return this;
    }

    public CouponManageData withEndTime(Long value, Long defaultValue) {
        this.setEndTime(value == null ? defaultValue : value);
        return this;
    }

    public String getType() {
        return this.type;
    }

    public void setType(String value) {
        this.type = value;
    }

    public CouponManageData withType(String value) {
        this.setType(value);
        return this;
    }

    public CouponManageData withType(String value, String defaultValue) {
        this.setType(value == null ? defaultValue : value);
        return this;
    }

    public String getModality() {
        return this.modality;
    }

    public void setModality(String value) {
        this.modality = value;
    }

    public CouponManageData withModality(String value) {
        this.setModality(value);
        return this;
    }

    public CouponManageData withModality(String value, String defaultValue) {
        this.setModality(value == null ? defaultValue : value);
        return this;
    }

    public Double getFullMoney() {
        return this.fullMoney;
    }

    public void setFullMoney(Double value) {
        this.fullMoney = value;
    }

    public CouponManageData withFullMoney(Double value) {
        this.setFullMoney(value);
        return this;
    }

    public CouponManageData withFullMoney(Double value, Double defaultValue) {
        this.setFullMoney(value == null ? defaultValue : value);
        return this;
    }

    public Double getMinusMoney() {
        return this.minusMoney;
    }

    public void setMinusMoney(Double value) {
        this.minusMoney = value;
    }

    public CouponManageData withMinusMoney(Double value) {
        this.setMinusMoney(value);
        return this;
    }

    public CouponManageData withMinusMoney(Double value, Double defaultValue) {
        this.setMinusMoney(value == null ? defaultValue : value);
        return this;
    }

    public List<CouponManageAndShopListData> getShopList() {
        if (this.shopList == null) {
            this.shopList = Lists.newArrayList();
        }

        return this.shopList;
    }

    public void setShopList(List<CouponManageAndShopListData> value) {
        this.shopList = value;
    }

    public CouponManageData withShopList(List<CouponManageAndShopListData> value) {
        this.setShopList(value);
        return this;
    }

    public CouponManageData withShopList(List<CouponManageAndShopListData> value, List<CouponManageAndShopListData> defaultValue) {
        this.setShopList(value == null ? defaultValue : value);
        return this;
    }

    public CouponManageData addShopList(CouponManageAndShopListData value) {
        if (this.shopList == null) {
            this.shopList = Lists.newArrayList();
        }

        this.shopList.add(value);
        return this;
    }

    public List<String> getShopNameList() {
        if (this.shopNameList == null) {
            this.shopNameList = Lists.newArrayList();
        }

        return this.shopNameList;
    }

    public void setShopNameList(List<String> value) {
        this.shopNameList = value;
    }

    public CouponManageData withShopNameList(List<String> value) {
        this.setShopNameList(value);
        return this;
    }

    public CouponManageData withShopNameList(List<String> value, List<String> defaultValue) {
        this.setShopNameList(value == null ? defaultValue : value);
        return this;
    }

    public CouponManageData addShopNameList(String value) {
        if (this.shopNameList == null) {
            this.shopNameList = Lists.newArrayList();
        }

        this.shopNameList.add(value);
        return this;
    }

    public String getRemarks() {
        return this.remarks;
    }

    public void setRemarks(String value) {
        this.remarks = value;
    }

    public CouponManageData withRemarks(String value) {
        this.setRemarks(value);
        return this;
    }

    public CouponManageData withRemarks(String value, String defaultValue) {
        this.setRemarks(value == null ? defaultValue : value);
        return this;
    }

    public Long getTotalAmount() {
        return this.totalAmount;
    }

    public void setTotalAmount(Long value) {
        this.totalAmount = value;
    }

    public CouponManageData withTotalAmount(Long value) {
        this.setTotalAmount(value);
        return this;
    }

    public CouponManageData withTotalAmount(Long value, Long defaultValue) {
        this.setTotalAmount(value == null ? defaultValue : value);
        return this;
    }

    public Long getAmount() {
        return this.amount;
    }

    public void setAmount(Long value) {
        this.amount = value;
    }

    public CouponManageData withAmount(Long value) {
        this.setAmount(value);
        return this;
    }

    public CouponManageData withAmount(Long value, Long defaultValue) {
        this.setAmount(value == null ? defaultValue : value);
        return this;
    }

    public String getState() {
        return this.state;
    }

    public void setState(String value) {
        this.state = value;
    }

    public CouponManageData withState(String value) {
        this.setState(value);
        return this;
    }

    public CouponManageData withState(String value, String defaultValue) {
        this.setState(value == null ? defaultValue : value);
        return this;
    }

    public Long getLimitId() {
        return this.limitId;
    }

    public void setLimitId(Long value) {
        this.limitId = value;
    }

    public CouponManageData withLimitId(Long value) {
        this.setLimitId(value);
        return this;
    }

    public CouponManageData withLimitId(Long value, Long defaultValue) {
        this.setLimitId(value == null ? defaultValue : value);
        return this;
    }

    public Long getLimitAccount() {
        return this.limitAccount;
    }

    public void setLimitAccount(Long value) {
        this.limitAccount = value;
    }

    public CouponManageData withLimitAccount(Long value) {
        this.setLimitAccount(value);
        return this;
    }

    public CouponManageData withLimitAccount(Long value, Long defaultValue) {
        this.setLimitAccount(value == null ? defaultValue : value);
        return this;
    }

    public Object getValueOf(String name) {
        byte var3 = -1;
        switch(name.hashCode()) {
            case -2103439280:
                if (name.equals("receiveTime")) {
                    var3 = 4;
                }
                break;
            case -1693757583:
                if (name.equals("fullMoney")) {
                    var3 = 8;
                }
                break;
            case -1607243192:
                if (name.equals("endTime")) {
                    var3 = 5;
                }
                break;
            case -1413853096:
                if (name.equals("amount")) {
                    var3 = 14;
                }
                break;
            case -1257401156:
                if (name.equals("totalAmount")) {
                    var3 = 13;
                }
                break;
            case -1034364087:
                if (name.equals("number")) {
                    var3 = 1;
                }
                break;
            case -622722335:
                if (name.equals("modality")) {
                    var3 = 7;
                }
                break;
            case -345533260:
                if (name.equals("shopList")) {
                    var3 = 10;
                }
                break;
            case 3355:
                if (name.equals("id")) {
                    var3 = 0;
                }
                break;
            case 3575610:
                if (name.equals("type")) {
                    var3 = 6;
                }
                break;
            case 109757585:
                if (name.equals("state")) {
                    var3 = 15;
                }
                break;
            case 176116278:
                if (name.equals("limitId")) {
                    var3 = 16;
                }
                break;
            case 755649247:
                if (name.equals("shopNameList")) {
                    var3 = 11;
                }
                break;
            case 1091415283:
                if (name.equals("remarks")) {
                    var3 = 12;
                }
                break;
            case 1211388583:
                if (name.equals("modifyTime")) {
                    var3 = 3;
                }
                break;
            case 1369213417:
                if (name.equals("createTime")) {
                    var3 = 2;
                }
                break;
            case 1395277298:
                if (name.equals("limitAccount")) {
                    var3 = 17;
                }
                break;
            case 1811910192:
                if (name.equals("minusMoney")) {
                    var3 = 9;
                }
        }

        switch(var3) {
            case 0:
                return this.getId();
            case 1:
                return this.getNumber();
            case 2:
                return this.getCreateTime();
            case 3:
                return this.getModifyTime();
            case 4:
                return this.getReceiveTime();
            case 5:
                return this.getEndTime();
            case 6:
                return this.getType();
            case 7:
                return this.getModality();
            case 8:
                return this.getFullMoney();
            case 9:
                return this.getMinusMoney();
            case 10:
                return this.getShopList();
            case 11:
                return this.getShopNameList();
            case 12:
                return this.getRemarks();
            case 13:
                return this.getTotalAmount();
            case 14:
                return this.getAmount();
            case 15:
                return this.getState();
            case 16:
                return this.getLimitId();
            case 17:
                return this.getLimitAccount();
            default:
                return null;
        }
    }

    public void setValueOf(String name, Object value) {
        byte var4 = -1;
        switch(name.hashCode()) {
            case -2103439280:
                if (name.equals("receiveTime")) {
                    var4 = 4;
                }
                break;
            case -1693757583:
                if (name.equals("fullMoney")) {
                    var4 = 8;
                }
                break;
            case -1607243192:
                if (name.equals("endTime")) {
                    var4 = 5;
                }
                break;
            case -1413853096:
                if (name.equals("amount")) {
                    var4 = 14;
                }
                break;
            case -1257401156:
                if (name.equals("totalAmount")) {
                    var4 = 13;
                }
                break;
            case -1034364087:
                if (name.equals("number")) {
                    var4 = 1;
                }
                break;
            case -622722335:
                if (name.equals("modality")) {
                    var4 = 7;
                }
                break;
            case -345533260:
                if (name.equals("shopList")) {
                    var4 = 10;
                }
                break;
            case 3355:
                if (name.equals("id")) {
                    var4 = 0;
                }
                break;
            case 3575610:
                if (name.equals("type")) {
                    var4 = 6;
                }
                break;
            case 109757585:
                if (name.equals("state")) {
                    var4 = 15;
                }
                break;
            case 176116278:
                if (name.equals("limitId")) {
                    var4 = 16;
                }
                break;
            case 755649247:
                if (name.equals("shopNameList")) {
                    var4 = 11;
                }
                break;
            case 1091415283:
                if (name.equals("remarks")) {
                    var4 = 12;
                }
                break;
            case 1211388583:
                if (name.equals("modifyTime")) {
                    var4 = 3;
                }
                break;
            case 1369213417:
                if (name.equals("createTime")) {
                    var4 = 2;
                }
                break;
            case 1395277298:
                if (name.equals("limitAccount")) {
                    var4 = 17;
                }
                break;
            case 1811910192:
                if (name.equals("minusMoney")) {
                    var4 = 9;
                }
        }

        switch(var4) {
            case 0:
                this.setId((String)value);
                return;
            case 1:
                this.setNumber((String)value);
                return;
            case 2:
                this.setCreateTime((Long)value);
                return;
            case 3:
                this.setModifyTime((Long)value);
                return;
            case 4:
                this.setReceiveTime((Long)value);
                return;
            case 5:
                this.setEndTime((Long)value);
                return;
            case 6:
                this.setType((String)value);
                return;
            case 7:
                this.setModality((String)value);
                return;
            case 8:
                this.setFullMoney((Double)value);
                return;
            case 9:
                this.setMinusMoney((Double)value);
                return;
            case 10:
                this.setShopList((List)value);
                return;
            case 11:
                this.setShopNameList((List)value);
                return;
            case 12:
                this.setRemarks((String)value);
                return;
            case 13:
                this.setTotalAmount((Long)value);
                return;
            case 14:
                this.setAmount((Long)value);
                return;
            case 15:
                this.setState((String)value);
                return;
            case 16:
                this.setLimitId((Long)value);
                return;
            case 17:
                this.setLimitAccount((Long)value);
                return;
            default:
        }
    }

    public boolean hasField(String name) {
        return FIELD_NAMES.contains(name);
    }

    public int hashCode() {
        return this.signature().hashCode();
    }

    public boolean equals(Object o) {
        return !(o instanceof CouponManageData) ? false : this.signature().equals(((CouponManageData)o).signature());
    }

    public String signature() {
        throw new RuntimeException("Bean CouponManageData has no signature defined, no hash code or equals possible.");
    }
}
